The present invention relates to the field of including self-describing information within a device. More particularly, the present invention relates to the field of including information within a device describing the physical attributes, features, capabilities and operation of the device.
The IEEE 1394-1995 standard, xe2x80x9c1394-1995 Standard For A High Performance Serial Bus,xe2x80x9d is an international standard for implementing an inexpensive high-speed serial bus architecture which supports both asynchronous and isochronous format data transfers. Isochronous data transfers are real-time transfers which take place such that the time intervals between significant instances have the same duration at both the transmitting and receiving applications. Each packet of data transferred isochronously is transferred in its own time period. An example of an ideal application for the transfer of data isochronously would be from a video recorder to a television set. The video recorder records images and sounds and saves the data in discrete chunks or packets. The video recorder then transfers each packet, representing the image and sound recorded over a limited time period, during that time period, for display by the television set. The IEEE 1394-1995 standard bus architecture provides multiple channels for isochronous data transfer between applications. A six bit channel number is broadcast with the data to ensure reception by the appropriate application. This allows multiple applications to simultaneously transmit isochronous data across the bus structure. Asynchronous transfers are traditional data transfer operations which take place as soon as possible and transfer an amount of data from a source to a destination.
The IEEE 1394-1995 standard provides a high-speed serial bus for interconnecting digital devices thereby providing a universal I/O connection. The IEEE 1394-1995 standard defines a digital interface for the applications thereby eliminating the need for an application to convert digital data to analog data before it is transmitted across the bus. Correspondingly, a receiving application will receive digital data from the bus, not analog data, and will therefore not be required to convert analog data to digital data. The cable required by the IEEE 1394-1995 standard is very thin compared to other bulkier cables used to connect such devices. A node on the IEEE 1394-1995 serial bus is considered a logical entity with a unique address on the bus structure. Each node provides an identification ROM, a standardized set of control registers and its own address space.
The IEEE 1394-1995 serial bus provides plug and play capabilities for applications. Devices can be added and removed from an IEEE 1394-1995 bus while the bus is active. If a device is so added or removed the bus will then automatically reconfigure itself for transmitting data between the existing nodes. To control any of these devices, the user must manually operate each device separately through controls on the device. In the alternative, it is well known that infrared control devices exist for a variety of home entertainment type products such as television, VCR, and sound systems. There are even a number of so-called xe2x80x98universal remotexe2x80x99 products available that can control a number of different brands or types of equipment.
If a computer system is connected as one of the nodes within the network, then particular devices connected to the network may be controlled through the computer system. The computer system runs driving software specific to the particular device which provides an interface to the user and allows the user to control and operate the device through the computer system. This driving software is typically packaged with the device and included on a floppy disk or CD-Rom. The driving software is then loaded into the computer system by the user as part of the initialization procedure when the device is first connected to the network or to the computer system directly. For example, when a printer is first connected to a computer system, a user must load the printer driver software on the computer system before the computer system is able to recognize and communicate with the printer. After the printer driver software is loaded on the computer system, the user has the ability to control the operation of the printer through commands entered into the computer system. If the printer driver software is later updated, the user must obtain the software upgrade, again on a floppy disk or CD-Rom, and load it into the computer system. For devices configured for operation with computer systems of different platforms, such as MAC or PC based platforms, multiple disks, each including the driving software and capable of being loaded into one of the available platforms, must be included with the device.
For many multimedia devices, such as camcorders and compact disk players, which may be connected to a computer system through an IEEE 1394-1995 network, such driver software is typically not available. While these devices may be able to communicate with the computer system, their control is effected through the device itself. Currently, a user is unable to control the operation of such a device through the computer system. However, as new applications for such devices are created, driving software may become critical to the successful operation of the device within a specific application.
Devices are also connected together or to a network without a computer system available within the configuration. In such a network or configuration, it is very likely that there is no device capable of running driving software for controlling the operation of other devices within the network. An example of such a network is a configuration including a television and a VCR, connected to each other. The user currently programs the VCR, in such a configuration, through text-based menus driven by the VCR and displayed on the television. To enter commands related to this programming operation, the user utilizes either the front panel of the VCR or a remote control device which sends transmissions to the VCR. There is currently no manner to control the operation of the VCR through the television. Current IEEE 1394-1995 technology also lacks a method to reliably determine characteristics of a device at a specific node, including the type of device, its features and capabilities and user interface information for representing the device and its features to the user.
What is needed is a method for storing information within a device, about that device, which can then be transmitted to other devices, either through a direct connection or through a network. What is further needed is a method for retrieving such self-describing information from a device or from information provided by the device. What is also needed is a method for automatically obtaining information and driving software from a device or from information provided by the device, thereby eliminating the necessity of including one or more disks containing the driving, software with the device.
Self-describing information is included within a device and contains information relating to a graphical representation of the device, the controls available on the device and the interface required to access those controls. The self-describing information is preferably embedded within a ROM within the device and is read by other devices coupled to the device for presenting a graphical user interface through which the device can be remotely controlled by a user. The self-describing information can also include an address from which additional information about the device and upgrades are automatically obtained. This address is either an internet address or points to a location within a network of devices. The address can also be modifiable. Alternatively, the self-describing information also includes driving software for enhancing the graphical user interface and controlling the operation of the device through another system. This driving software is written either in the native language of the device on which it is uploaded and executed or in a platform neutral language such as Java(trademark). The graphical user interface is presented on a television, computer or other appropriate system for controlling multiple devices through the system. The controlling system obtains the self-describing information from each device within the configuration. The graphical user interface includes a graphical representation of the devices and specific control features available to the user presented in a graphical orientation. Alternatively, a three-dimensional representation of the device is presented with controls represented on the device. If no controlling system is available, a graphical user interface is controlled by an application within the device and presented on an available display.